home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8401.arc / BASIC2.BAS < prev    next >
BASIC Source File  |  1983-09-16  |  2KB  |  72 lines

  1. 'This program section allows the waveform stored in an array to be plotted on
  2. 'an X-Y plotter using the 2 digital-to-analog converters on the Labmaster
  3. 'board.  The waveforms are stored in the integer array x% which has been
  4. 'dimensioned x%(645,29). The array x%(a,b) is used as follows: b (0 thru 29)
  5. 'is the run number; for each level of b the actual waveform values are
  6. 'stored in a=1 thru a=640.
  7. '
  8.     CLS : PRINT "Routine for X-Y recorder plots of waveforms" : PRINT
  9.     PRINT "Connect d/a channel 0 to X-input of recorder,"
  10.     PRINT "Connect d/a channel 1 to Y-input of recorder." : PRINT
  11. '
  12. 'now get run number of desired waveform
  13. '
  14. 2350    INPUT "Run number (1-30) to plot";PLOTRUN%
  15. '
  16. 'make sure the input value are within range
  17. '
  18.     IF PLOTRUN%<1 OR PLOTRUN%>30 THEN  PRINT "Out of range" : GOTO 2350
  19. '
  20. 'since array is dimensioned 0-29, must subtract 1 from PLOTRUN%
  21. '
  22.     PLOTRUN%=PLOTRUN%-1
  23. '
  24. 'zero plotter pen by commanding both d/a converters to zero volts
  25. '
  26.     OUT &H711,0 : OUT &H710,0 : OUT &H713,0 : OUT &H712,0
  27. '
  28.     INPUT "Lower pen, hit return for plot (enter M for menu)";K$
  29.     IF K$="M" OR K$="m" THEN GOTO 290
  30. '
  31. 'calculate and send values to d/a converters
  32. '
  33. 'p%(7) is a parameter set in another part of the program - it determines how
  34. 'much of the waveform is plotted. Its value is always 640, 320, or 160.
  35. '
  36.     DL%=640/P%(7)
  37. '
  38. 'loop once for each data point
  39. '
  40.     FOR I%=1 TO p%(7)
  41. '
  42. 'the d/a converters are 12 bit, but we can send only 8 at a time; the value
  43. 'to be sent must be divided into a low byte and a high byte (the left 4 bits
  44. 'of the high byte are ignored).
  45. '
  46. 'calculate the x-coordinate
  47. '
  48.     HIGH0%=INT(I%*3*DL%/256)
  49.     LOW0%=I%*3*DL%-256*HIGH0%
  50. '
  51. 'calculate the y coordinate
  52. '
  53.     HIGH1%=INT(X%(I%,PLOTRUN%)/256)
  54.     LOW1%=X%(I%,PLOTRUN%)-HIGH1%*256
  55.     IF HIGH1%<0 THEN HIGH1%=16+HIGH1%
  56. '
  57. 'send the x value to d/a 0, the y value to d/a 1
  58. '
  59.     OUT &H711,HIGH0% : OUT &H710,LOW0%
  60.     OUT &H713,HIGH1% : OUT &H712,LOW1%
  61. '
  62. 'now a delay loop because the computer is faster than the plotter
  63. '
  64.     FOR K=1 TO 20 : NEXT K
  65.     NEXT I%
  66. '
  67. 'done, so beep and return
  68. '
  69.     BEEP : return
  70. '
  71.